home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / button12.lha / button9106.ps < prev    next >
Text File  |  1993-08-05  |  5KB  |  182 lines

  1. % button9106.ps - A GNU Button Program
  2. % Copyright 1991 Free Software Foundation
  3. % This program is free software; you can redistribute it and/or modify
  4. % it under the terms of the GNU General Public License as published by
  5. % the Free Software Foundation; either version 2, or (at your option)
  6. % any later version.
  7. %
  8. % This program is distributed in the hope that it will be useful,
  9. % but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11. % GNU General Public License for more details.
  12. %
  13. % You should have received a copy of the GNU General Public License
  14. % along with this program; if not, write to the Free Software
  15. % Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  16. % Hard copies of this button were first distributed at the June 1991
  17. % Nashville Usenix.  They had black lettering on a white background on a
  18. % standard 2 1/4" safety pin button.  They were designed by Leonard H.
  19. % Tower Jr. who is also the author of this GNU Button Program.
  20. % Report bugs or improvements to: tower@prep.ai.mit.edu
  21. % Hard copies of this button are probably still available.  To get a
  22. % button, one must have either donated source code or documentation to
  23. % the GNU Project or make a donation of at least $ 2.00 for each button.
  24. % If you wish a hard copy of a gnu button send:
  25. %     - a self-addressed, stamped envelope; and
  26. %     - either:
  27. %         - a reminder of your source or documentation contribution; or
  28. %         - a donation payable to the "Free Software Foundation"; and
  29. %     - specify which of these different versions you wish:
  30. %         Feb 88, Jun 88, Jan 89, Jun 89, Jan 90, Jun 90, Jan 91
  31. %        and/or Jun 91
  32. % to:    L. Tower Jr.
  33. %     36 Porter Street,
  34. %    Somerville, MA  02143, USA
  35. % This program is available for anonymous ftp
  36. % prep.ai.mit.edu:/u2/emacs/button.N.MM.shar.  It is probably available
  37. % in other source archives.
  38.  
  39. % debugging help
  40. %.so ehandler.ps
  41.  
  42. % uses {in,out}sidecircletext routines from Adobe Cookbook.
  43. .so circtext.ps
  44.  
  45. % center button on 8 1/2" x 11" page
  46. 306 396 translate
  47.  
  48. % This is a kludge to give better edge resolution.
  49. % Note that postscript's scale command doesn't cut it.
  50. % It scales after the edges are set.
  51. % biggg is set to 2,3,4, 3.7 or 3.9 to make a master that is that much larger.
  52. % The master is reduced that much by the button manufacturer.
  53. % If only 1200 dpi postscript printers were more common ...
  54. /biggg 1 def
  55.  
  56. % useful for centering things
  57. /circleguide {
  58.   gsave
  59.   /radius 82 biggg mul def
  60.   .5 setlinewidth
  61.   newpath
  62.     0 0 radius 0 360 arc
  63.   stroke
  64.   grestore
  65. } def
  66.  
  67. %circleguide
  68.  
  69. gsave
  70.   % define the basic dimensions of the letters
  71.   % people are welcome to call this typeface:    hornart-deco
  72.   /tipangle 30 def
  73.   /gta 90 tipangle sub def    % g tip angle
  74.   /uta 90 tipangle add def    % u tip angle
  75.   /tiprad 4 biggg mul def
  76.   /hornrad 32 biggg mul def
  77.   /letsep 8 biggg mul def    
  78.   /letheight 28 biggg mul def
  79.   /letwidth 14 biggg mul def
  80.   /letrad 8 biggg mul def
  81.   /linewidth 4 biggg mul def
  82.  
  83.   linewidth setlinewidth
  84.   0 tiprad neg moveto    % roughly center
  85.   0 setgray
  86.   .1 setflat
  87.  
  88. % give us a G !
  89.   /letcenter letwidth letsep add neg def
  90.   1 setlinejoin
  91.   1 setlinecap   % wish there was a pointy default!
  92.  
  93.   newpath
  94.   letcenter hornrad tiprad add tiprad    270 gta    arc
  95.   stroke
  96.   1 setlinejoin
  97.   0 setlinecap
  98.   letcenter hornrad tiprad add tiprad    gta 270    arcn
  99.   stroke
  100.   newpath
  101.     0 setlinejoin
  102.     2 setlinecap
  103.   newpath
  104.   letcenter 0            hornrad  90 270    arc
  105.   currentpoint
  106.         letrad add        letrad    270   0 arc
  107.   0            letheight 2 div    rlineto
  108. %  letwidth 2 div neg    0        rlineto
  109.   /Helvetica-Narrow-Bold findfont linewidth 1.5 mul scalefont setfont
  110.   currentpoint
  111.   stroke
  112.   moveto
  113.   (THANX) stringwidth exch linewidth .6 mul add neg exch
  114.          2 mul linewidth .6 mul add neg rlineto
  115.   (THANX) show
  116.  
  117.  
  118. % give us a N !
  119.   newpath
  120.   letwidth 2 div neg     hornrad neg    moveto
  121.   0            letheight    rlineto
  122.   letwidth        letheight neg     rlineto
  123.   0            letheight    rlineto
  124.   currentpoint
  125.   stroke
  126.   moveto
  127.   linewidth .7 mul letheight linewidth 2 mul add neg rmoveto
  128.   ('s Not Unix) show
  129.  
  130. % give us a U !
  131.   /letcenter letcenter neg def
  132.   1 setlinejoin
  133.   1 setlinecap   % wish there was a pointy default!
  134.  
  135.   newpath
  136.   letcenter hornrad tiprad add tiprad    270 uta    arcn
  137.   stroke
  138.   1 setlinejoin
  139.   0 setlinecap
  140.   newpath
  141.   stroke
  142.   letcenter hornrad tiprad add tiprad    uta 270    arc
  143.   stroke
  144.     0 setlinejoin
  145.     2 setlinecap
  146.   newpath
  147.   letcenter 0            hornrad  90 270    arcn
  148.   currentpoint 
  149.         letrad add        letrad    270 180 arcn
  150.   0                letheight letrad sub    rlineto
  151.   currentpoint
  152.   stroke
  153.  
  154. % what does it spell?!?  GNU  !!
  155.  
  156. % now for the eye!
  157.   moveto
  158.   letwidth .8 mul letheight .4 mul neg rmoveto
  159.   /Courier-Oblique findfont 15 biggg mul scalefont setfont
  160.   (@) show
  161.  
  162. grestore
  163.  
  164. gsave
  165.   /Helvetica-Narrow-Bold findfont 5.75 biggg mul scalefont setfont
  166.  
  167.   (Copyright 1991 Free Software Foundation, Inc.)
  168.     7.5 biggg mul 270 73 biggg mul outsidecircletext
  169.   (Anonymous ftp prep.ai.mit.edu:/pub/gnu/button.N.shar, this button's postscript program which is freely redistributable under the GNU General Public License.)
  170.     7.5 biggg mul 90 73 biggg mul outsidecircletext
  171.  
  172. grestore
  173. showpage
  174.